The present invention relates generally to automatic performance devices which carry out automatic music performance by reading out performance data prestored in memory, and more particularly to a method for storing and editing performance data in an automatic performance device.
As commonly known, automatic performance devices are such devices which prestore in memory performance information such as pitch, tone generation/tone-deadening timing, etc. for each note of desired music pieces and perform automatic performance by sequentially reading out the prestored performance information to generate tone.
One typical example of various known methods of storing and reproducing the performance information in the automatic performance devices is the so-called "note system", where note data comprised of tone pitch and duration data are stored into memory in accordance with the progress of a music piece, and in subsequent reproduction, each note data is read out when a time represented by preceding tone duration data has passed. This system, however, has a drawback that it can not effectively deal with simultaneous generation of plural tones because each note data is read out after preceding note data is read out. Japanese patent publication No. 4-5996 discloses such an automatic performance device as described above.
A second example is the so-called "event system", where note information comprised of event data and event data generation timing data are prestored in accordance with the progression of a music piece. The event data are classified into the following two types in terms of a manner in which they are stored:
(1) Event data that represents one note by two events, key-on and key-off events and is comprised of key-on and key-off data and data indicative of the pitch of the key; and PA1 (2) Event data that represents one note by one event and is comprised of key-on data and data indicative of the pitch of the key and duration. PA1 (1) Timing data that represents timing by an absolute time value from the beginning of a music piece or a measure; and PA1 (2) Timing data that represents timing by a relative time value between current and preceding event data.
In addition to the key-on and key-off data, etc., the event data includes other data such as tone color change data, pitch bend data and tempo change data.
Further, the event data generation timing data are classified into the following two types in terms of a manner in which they are stored:
Ordinarily, the timing data is expressed in unit called "clock", and this clock corresponds to a minimum resolution of the timing data. One clock is usually set to 1/24, 1/96, 1/381 or the like of a quarter note. When it is desired to change tempo in the automatic performance devices, it suffices to only adjust the clock frequency.
Moreover, the conventional methods for storing performance information include a real-time recording system which records in real-time performance information generated from an actual performance of an electronic musical instrument, and a step recording system which records performance information by designating the pitch and duration of each note.
For plural-part automatic performance, plural performance tracks are provided in corresponding relations to plural performance parts, and performance information for the individual tracks are read out in parallel independently of each other. Such reading of the performance information for the plural tracks is typically done by time-divisional processing.
In the above-mentioned automatic performance devices, it may sometimes be desired to make editing (modification, addition etc.) on the performance information stored in memory, and in such a case, the editing operation is performed in a manner as shown in FIG. 16. In FIG. 16A, the memory space comprises regions 100, 101 and 102, and it is assumed that music data "A" and "B" as performance information are stored in the regions 100 and 101, respectively, and the region 102 is an empty region C. When it is desired to add music data to locations succeeding a specific address designated by a pointer, a lowest line of the music data B written in the region 101 is written into an address of the empty region 102, and a second line from the lowest line is written into one address preceding the above-mentioned address. Then, by repeating these operations, the entire music data B are copied into the region 102 in a downward shifting fashion. Thus, as shown in FIG. 16B, a predetermined data inserting region D is formed below the music data A, and then, the editing is performed by writing into the data inserting region D music data to be added. By this editing process, the memory space is reformed so as to comprise a region 103 containing the music data A and data inserting region, the region 102 containing the music data B, and a narrowed region 104 corresponding to the empty region C.
However, if the region 101 containing the music data B is large in size, it would take a long time to copy the music data. Further, during the copying of the music data, no other operation can be performed, and hence the long copying time during the editing is not at all preferable to the user.
In addition, unless the size of the data insertion region D is not known in advance, the repetitive music data D sometimes have to be moved after having been copied, and this would require an even longer copying time.